home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d1 / memdump.arc / MEMDUMP.BAS < prev   
BASIC Source File  |  1985-09-25  |  2KB  |  73 lines

  1. 1 KEY OFF
  2. 10 REM Program to examine the contents
  3. 20 REM of the memory. Enter the first
  4. 30 REM and last addresses to be displayed.
  5. 40 REM Address and memory contents are
  6. 50 REM both displayed in hexadecimal.
  7. 60 REM ** You can only access 64K on
  8. 70 REM each run, and cannot read over
  9. 80 REM the segment boundries in one
  10. 90 REM run.
  11. 100 REM
  12. 110 REM Author : Eddie Jaeger
  13. 120 REM
  14. 130 REM Written 4/18/82
  15. 131 '  Revising author:  Stephen Leoce
  16. 132 '                    201 Delaware Avenue
  17. 133 '                    Kingston, New York  12401
  18. 134 '                    [914] 338-4593
  19. 135 '
  20. 136 '  Last Revision:    22-December-1983
  21. 137 '
  22. 140 REM
  23. 141 CLS
  24. 142 LOCATE 25,70 : PRINT "READING";
  25. 143 LOCATE 1,1
  26. 150 INPUT "START, STOP ADDRESS; (ASSUMED HEX) ===> ",F$,L$
  27. 153 LOCATE 25,70:PRINT"WORKING";:LOCATE 1,1:PRINT STRING$(80,32)
  28. 160 IF LEN(F$)<5 THEN Y$=F$: GOSUB 440: F$=Y$
  29. 170 IF LEN(L$)<5 THEN Y$=L$: GOSUB 440: L$=Y$
  30. 180 S1$ = LEFT$(F$,1)
  31. 190 S1 = VAL("&H"+S1$)
  32. 200 S = S1 * &H1000
  33. 210 X$ = RIGHT$(F$,4)
  34. 220 GOSUB 400
  35. 230 F = X
  36. 240 X$ = RIGHT$(L$,4)
  37. 250 GOSUB 400
  38. 260 L = X
  39. 270 DEF SEG = S
  40. 278 LINES=0
  41. 279 LOCATE 1,1:COLOR 1:PRINT"ADDR:           ***REGISTER CONTENTS*** ":COLOR 7:PRINT:COLOR 0,7:PRINT"OFFSET    01  02  03  04  05  06  07  08":PRINT:COLOR 7,0
  42. 280 FOR C1 = F TO L STEP 8
  43. 290 C1$ = HEX$(C1)
  44. 300 IF LEN(C1$) < 5 THEN Y$ = C1$: GOSUB 440
  45. 301 GOSUB 5000
  46. 310 A$ = S1$ + RIGHT$(Y$,4)
  47. 320 PRINT USING "\   \"; A$;":     ";
  48. 321 LINECOUNT = LINECOUNT + 1
  49. 330 FOR C2 = C1 TO C1 + 7
  50. 340 PRINT USING "\\";HEX$(PEEK(C2));"  ";
  51. 350 NEXT C2
  52. 360 PRINT
  53. 370 NEXT C1
  54. 380 DEF SEG
  55. 388 LOCATE 25,70:PRINT "TERMINATED";
  56. 390 END
  57. 400 REM CONVERT STRING X$ TO DECIMAL X
  58. 410 X1 = VAL("&H" + X$)
  59. 420 IF X1 < 0 THEN X = 65535!+X1 ELSE X = X1
  60. 430 RETURN
  61. 440 REM MAKE Y$ 5 CHARACTERS LONG
  62. 450 Y$ = "0" + Y$
  63. 460 IF LEN(Y$) < 5 THEN GOTO 450
  64. 470 RETURN
  65. 5000 ' area to see if time to pause screen and change pages...
  66. 5010 IF LINECOUNT > 15 THEN GOSUB 6000 ELSE RETURN
  67. 5020 RETURN
  68. 6000 LINECOUNT = 0:LOCATE 25,70 : PRINT "MORE...";
  69. 6001 A$=INKEY$: IF LEN(A$)=0 THEN 6001
  70. 6002 CLS:LOCATE 25,70:PRINT "WORKING";
  71. 6003 LOCATE 1,1:COLOR 1:PRINT"ADDR:         ***REGISTER CONTENTS*** ":COLOR 7:PRINT:COLOR 0,7:PRINT"OFFSET    01  02  03  04  05  06  07  08  ":PRINT:COLOR 7,0
  72. 6004 RETURN
  73. *REGISTER CONTENTS*** ":COLOR 7:PRINT:COLOR